$(document).ready ( function () {
	/*
	 * Formular abschicken: Tickets
	 */
	$('#submit-ticketform').click(function(){
		//AJAX-Ziel festlegen
		var ajax_target;
		if($('#edittype').val() == 'new') {
			ajax_target = '/de/tickets/saveticket';
		}
		else {
			ajax_target = '/de/tickets/editticket/tid/'+$('#tid').val();
		}
		//AJAX-Request
		$('#ticketform').slideUp("slow");
		$.post(ajax_target, $("#ticketform").serialize(), function(data) {
			//alert(data);
			if(data == 'success') {
				$('#feedback-success').slideDown("slow");
			}
			else {
				$('#feedback-error').slideDown("slow");
			}
		});
	});
	/*
	 * Formular abschicken: Projekte
	 */
	$('#submit-projectform').click(function(){
		//AJAX-Ziel festlegen
		var ajax_target;
		if($('#edittype').val() == 'new') {
			ajax_target = '/de/projects/saveproject';
		}
		else {
			ajax_target = '/de/projects/editproject/pid/'+$('#pid').val();
		}
		//AJAX-Request
		$('#projectform').slideUp("slow");
		$.post(ajax_target, $("#projectform").serialize(), function(data) {
			//alert(data);
			if(data == 'success') {
				$('#feedback-success').slideDown("slow");
			}
			else {
				$('#feedback-error').slideDown("slow");
			}
		});
	});
	/*
	 * Formular abschicken: Benutzer
	 */
	$('#submit-userform').click(function(){
		//AJAX-Ziel festlegen
		var ajax_target;
		if($('#edittype').val() == 'new') {
			ajax_target = '/de/users/saveuser';
		}
		else {
			ajax_target = '/de/users/edituser/uid/'+$('#uid').val();
		}
		//AJAX-Request
		$('#userform').slideUp("slow");
		$.post(ajax_target, $("#userform").serialize(), function(data) {
			//alert(data);
			if(data == 'success') {
				$('#feedback-success').slideDown("slow");
			}
			else {
				$('#feedback-error').slideDown("slow");
			}
		});
	});
	/*
	 * Formular abschicken: Account
	 */
	$('#submit-accountform').click(function(){
		//Wenn die neuen PWs unterschiedlich sind: FEHLER!
		if($('#change_pw').attr("checked") && ($('#password_new').val() != $('#password_new_repeat').val())) {
			$('.help').show().fadeOut(10000);
			$('#password_new').addClass('error');
			$('#password_new_repeat').addClass('error');
			return false;
		}
		//AJAX-Request
		//$('#userform').slideUp("slow");
		$.post("/de/account/update", $("#accountform").serialize(), function(data) {
			//alert(data);
			$('#password_new').removeClass('error');
			$('#password_new_repeat').removeClass('error');
			//AJAX Rückgabe
			if(data == 'success') {
				$('#feedback-success').slideDown("slow");
				$('#password_old').val("");
				$('#password_new').val("");
				$('#password_new_repeat').val("");
			}
			else {
				$('#feedback-error').slideDown("slow");
			}
		});
	});
	/*
	 * Formular abschicken: Kommentare
	 */
	$('#submit-commentform').live('click', function(){
		//AJAX-Ziel festlegen
		var ajax_target;
		var cid;
		cid = $('#cid').val();
		if($('#edittype-comment').val() == 'new') {
			ajax_target = '/de/comments/savecomment';
		}
		else {
			ajax_target = '/de/comments/editcomment/cid/'+$('#cid').val();
		}
		//AJAX-Request
		$('#commentform').slideUp("slow");
		$.post(ajax_target, $("#commentform").serialize(), function(cid) {
			//Kommentar anzeigen
			$.post("/de/comments/ajaxshowcomment/cid/"+cid, function(data) {
				$('#comments').append(data);
			});
			//Kommentar-hinzufügen-Box wieder anzeigen
			$('#submitbox-comment').show();
		});
	});
	/*
	 * Tabellenzeilen highlighten
	 */
	$('.trow').mouseover(function(){
		$(this).addClass('highlight');
	});
	$('.trow').mouseout(function(){
		$(this).removeClass('highlight');
	});
	/*
	 * Tabellensortierungen
	 */
	$('#tickettable').tablesorter({headers:{1:{sorter:false},2:{sorter:false},4:{sorter:'germandate'},5:{sorter:false}},sortList: [[4,0]]});
	$('#invoicetable').tablesorter({headers:{1:{sorter:false},3:{sorter:'germandate'},4:{sorter:false},5:{sorter:false}},sortList: [[3,0]]});
	/*
	 * Tabs für die versch. User-Ansichten
	 */
	$('#usertabs').tabs();
	/*
	 * Kunden hinzufügen mit jQuery TagEdit
	 */
	$( "#clientlist" ).find('input.tag').tagedit({
		autocompleteURL: '/de/users/ajaxgetclients/',
		allowEdit: false,
		allowAdd: false
	});
	/*
	 * Zeitangaben in das korrekte Format bringen
	 */
	$('#est_expense').blur(function() {
		if($('#est_expense').val() != "") {
			var value_old = $('#est_expense').val();
			value = value_old.replace(/[a-zA-z]/g, '');
			value = value.replace(/,/g, '.');
			$('#est_expense').val(value);
			//wenn der alte Wert vom neuen abweicht, wird der Hinweis eingeblendet
			if(value_old != value) {
				$('.help').show().fadeOut(10000);
			} 
		}
	});
	/*
	 * jQuery Datepicker
	 */
	$('#deadline').datepicker( $.datepicker.regional['de'] );
	$('#paydate').datepicker( $.datepicker.regional['de'] );
	/*
	 * Kommentarformular per AJAX einfügen
	 */
	$('#add-comment').click(function() {
		$.post("/de/comments/ajaxcommentform/tid/"+$('#tid').val(), function(data) {			
			$('#submitbox-comment').hide();
			$('#formbox-comment').html(data).hide().slideDown("slow");		
		});
	});
	/*
	 * Kommentarformular per AJAX einfügen
	 */
	$('.delete-comment').click(function() {
		id = $(this).attr('id').substr(11);
		$.post("/de/comments/ajaxdeletecomment/cid/"+id, function(data) {			
			if(data == "success") {
				$('#comment-'+id).fadeOut('slow');
			}
			else {
				alert("Fehler! Kommentar konnte nicht geloescht werden.");
			}
		});
	});
	/*
	 * Stundensatz in Abhängigkeit vom Projekt vorselektieren
	 */
	$('#pid').change(function() {
		$.post("/de/projects/ajaxgetdefaultcostid/pid/"+$(this).val(), function(data) {			
			if(data != 0) {
				$('#costid').val(data);
			}
		});
	});
	/*
	 * Alle Tickets markieren
	 */
	$('#checkAllAuto').click(function() {
		$("INPUT[type='checkbox']").attr('checked', $('#checkAllAuto').is(':checked'));   
	});
	/*
	 * markierte Tickets per AJAX als 'verrechenbar' markieren
	 */
	$('#submit-markticketsforbilling').click(function() {
		$.post("/de/tickets/ajaxmarkticketsforbilling", $("#form-markticketsforbilling").serialize(), function(data) {			
			arr = data.split(",");
			for(i = 0;i < arr.length;i++) {
				if(arr[i] != "") {
					$('#trow-'+arr[i]).fadeOut(1500);
				}
			}
		});
	});
	/*
	 * markierte Rechnungen per AJAX als 'bezahlt' markieren
	 */
	$('#submit-markinvoicesaspaid').click(function() {
		$.post("/de/invoices/ajaxmarkinvoicesaspaid", $("#form-markinvoicesaspaid").serialize(), function(data) {			
			arr = data.split(",");
			for(i = 0;i < arr.length;i++) {
				if(arr[i] != "") {
					$('#trow-'+arr[i]).fadeOut(1500);
				}
			}
		});
	});
	/*
	 * separates Rechnungsadressen-Formular
	 */
	if($('#show_ba').attr("checked")) {
		$("#billing_address").show();
	}
	$('#show_ba').click(function() {
		if($(this).attr("checked")) {
			$("#billing_address").slideDown('slow');
		}
		else {
			$("#billing_address").slideUp('slow');
		}
	});
	/*
	 * "Passwort ändern"-Formular
	 */
	if($('#change_pw').attr("checked")) {
		$("#password_change").show();
	}
	$('#change_pw').click(function() {
		if($(this).attr("checked")) {
			$("#password_change").slideDown('slow');
		}
		else {
			$("#password_change").slideUp('slow');
			//außerdem müssen die Werte aus den Felder gelöscht werden
		}
	});
	/*
	 * Abrechnungszeitpunkt in Abhängigkeit vom gegebenen Intervall
	 */
	$('#repetition').change(function() {
		//erst alle ausblenden, dann den richtigen einblenden
		$('#repetition_detail').children("input").hide();
		$('#repetition_detail').children("select").hide();
		if($(this).val() == "manually") $('#ondemand').show();
		if($(this).val() == "single") $('#paydate').show();
		if($(this).val() == "weekly") $('#payweekday').show();
		if($(this).val() == "monthly") $('#payday').show();
	});
	/*
	 * Abrechnungszeitpunkt in Abhängigkeit vom gegebenen Intervall
	 */
	$('#select_filtertickets').change(function() {
		if($(this).val() != "") {
			window.location.href = $(this).val();
		}
	});
	/*
	 * Logik für Pauschal-/Stundenpreise
	 */
	$('#flatrate').click(function() {
		$('#flatrate').removeAttr('readonly', '');
		$('#est_expense').attr('readonly', 'readonly');
	});
	$('#est_expense').click(function() {
		$('#est_expense').removeAttr('readonly', '');
		$('#flatrate').attr('readonly', 'readonly');
		//Pauschalpreis leeren
		$('#flatrate').val('');
	});
	$('#flatrate').blur(function() {
		if($('#flatrate').val() != "") {
			var hours;
			hours = $('#flatrate').val() / $('#costid-'+$('#costid').val()).attr('title');
			$('#est_expense').val(hours.toFixed(2));
		}
	});
	$('#costid').change(function() {
		if($('#flatrate').val() != "") {
			var hours;
			hours = $('#flatrate').val() / $('#costid-'+$('#costid').val()).attr('title');
			$('#est_expense').val(hours.toFixed(2));
		}
	});
});
